机器人摆动功能开发
修订日期 | 修订版本 | 修订内容 | 修订人 |
---|---|---|---|
2023.03.30 | V0.1 | 初始化文档 | 刘刚 |
2023.04.19 | V0.2 | 增加摆线调用示例 | 赵锦强 |
[TOC]
1. 摆动模式
针对某个运动路径,摆动从路径开始一直持续到路径结束,摆动开始点和结束点都位于原始路径上。若摆动是周期性偏离原始路径两侧的运动,则原始路径运动时间是半个摆动周期的整数倍。
摆动形状和焊接速度密切相关,焊接运动速度越快,摆动频率越快(在摆动步长一定的情况下)。摆动形状和摆动步长、幅值也相关,如下图所示:
摆动步长:摆动一个周期内运动的长度
摆动幅值:摆动偏离原始轨迹的最大幅度(两侧幅值不一定相等)
应结合机械臂的性能对摆动幅值进行限制
2. 摆动平面
在焊接过程中,针对 CP(连续轨迹)运动,需定义一个基于工具的运动坐标系TTS来描述工具末端相对于焊缝的摆动方向,如下:
: 路径的切线方向
$Y{TTS}$: 路径的切线方向和工具方向 + $Z{TOOL}$的正交向量方向
$Z{TTS}$: $X{TTS}$和$Y_{TTS}$的正交向量方向
注意:在焊接工艺中,路径切线方向和工具方向不能平行,否则TTS坐标系无法建立
摆动平面的夹角指摆动轨迹(二维)相对于$X{TTS}$和$Y{TTS}$组成平面的夹角。该夹角的范围是(-$\pi$, $\pi$],夹角为0时,摆动平面和TTS的XY平面重合。
①摆动平面夹角为0° ②摆动平面夹角为0°,但工具倾角(焊接工艺角)发生变化 ③摆动平面转动90° ④摆动平面转动180°
如果两个对接工件的厚度不一致,则摆动平面应该偏向更厚的那个工件,使得更多的热量传导到厚的工件上,如下图所示:
①摆动平面没有翻转 ②摆动平面翻转 α,使更多热量传导到厚板上
3. 摆动频率
摆动频率$f$对焊接质量有关键影响,主要取决于摆动步长$s$和焊接速度$v$。最大的摆动频率跟机械臂的动态特性有关(频率共振点和最大速度限制)。
摆动频率$f$[Hz]:= 焊接速度$v $× 1000 / (摆动步长$s $ × 60)
摆动步长$s$[mm]:= 焊接速度$v$ × 1000 / (摆动频率$f $ × 60)
摆动频率和摆动步长的参考值如下表所示:
①允许的区域 ②不建议的区域 ③禁止的区域
4.参数接口
在路径属性PathProperty
的复杂曲线运动属性CurveProperty
的sp
属性中设置.
struct SuperimposedParameters
{
bool enable{false}; // 使能路径叠加功能(在运动路径的法平面内进行叠加)
WeaveType type; // 路径类型(针对焊接应用, 就是摆动类型,比如正弦,摆线)
double step; // 一个周期内在运动方向上移动的距离(摆动步长)
Vector2d amplitude; // 一个周期内在运动叠加方向的最大幅值(不一定对称),当复用为摆线的幅值时,只用第一个元素
Vector2d holdDistance; // 运动到最大幅值处保持的距离(不一定对称),当复用为摆线的宽度时,只用第一个元素
double angle; // 运动叠加方向与法平面的夹角,单位rad
int direction{0}; // 摆线起始摆动方向,0表示在路径方向上方,1表示在路径方向下方
}; // 叠加路径属性
enum WeaveType: int
{
SINE = 0, // 正弦波
SPIRAL = 1, // 摆线
TRIANGLE = 2, // 三角形
TRAPEZOIDAL = 3, // 梯形
};// 摆动类型
其中,如果enable
属性设置成true, 则表示使能路径叠加功能(摆焊).
5.调用示例
5.1 正弦波
ARAL::interface::PathProperty path_property;
path_property.describe_space = ARAL::interface::DescribeSpace::CARTESIAN;
path_property.curProp.type = ARAL::interface::Curvetype::LINE;
path_property.curProp.sp.enable = true;
path_property.curProp.sp.type = ARAL::interface::WeaveType::SINE;
path_property.curProp.sp.step = 0.01;
path_property.curProp.sp.amplitude = {0.005, 0.005};
path_property.curProp.sp.holdDistance = {0.0, 0.0};
path_property.curProp.sp.angle = 0.1;
5.2 摆线
ARAL::interface::PathProperty path_property;
path_property.describe_space = ARAL::interface::DescribeSpace::CARTESIAN;
path_property.curProp.type = ARAL::interface::Curvetype::LINE;
path_property.curProp.sp.enable = true;
property.curProp.sp.step = 0.03;
property.curProp.sp.type = ARAL::interface::WeaveType::SPIRAL;
property.curProp.sp.angle = 0.0;
property.curProp.sp.amplitude = {0.04,0.0}; //当复用为摆线的幅值时,只用第一个元素
property.curProp.sp.holdDistance = {0.03,0.0}; //当复用为摆线的宽度时,只用第一个元素
property.curProp.sp.direction = 0; //摆线起始摆动方向,0表示在路径方向上方,1表示在路径方向下方
6.其他说明
为了使焊缝更加均匀, 一般需要机器人在摆动到最大幅值处停留一段时间,如下图所示:
算法只开放路径几何属性,所以软件需要根据焊接速度将保持时间变成保持距离。